/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package mx.unam.fciencias.actividadesculturales.entidades.db;

import java.io.Serializable;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import mx.unam.fciencias.actividadesculturales.entidades.db.enums.AreaConocimiento;
import mx.unam.fciencias.actividadesculturales.entidades.db.enums.DependenciaAdministrativa;
import mx.unam.fciencias.actividadesculturales.entidades.db.enums.GrupoTrabajo;

/**
 * Clase que implementa los atributos de la entidad entidadacademica.
 * @author lumartin
 */
@Entity
@Table(schema = "cultura")
public class EntidadAcademica implements Serializable, CatalogoInterface {

    @Id @SequenceGenerator(name = "ent_acad_id_seq",
            sequenceName = "ent_acad_id_seq")
    @GeneratedValue(generator = "ent_acad_id_seq",
        strategy = GenerationType.AUTO)
    private long id_ent_acad;
    @Column(length=512, nullable = false)
    private String nomb_ent;
    @Column(length=512)
    private GrupoTrabajo grp_trab;
    @Column(length=512)
    private DependenciaAdministrativa dep_administrativa;
    @Column(length=512)
    private AreaConocimiento area_conocimiento;
    @ManyToMany(mappedBy="entAcademicas", fetch = FetchType.EAGER)
    private List<Actividad> actividades;

    public EntidadAcademica() { }

    public AreaConocimiento getArea_conocimiento() {
        return area_conocimiento;
    }

    public void setArea_conocimiento(AreaConocimiento area_conocimiento) {
        this.area_conocimiento = area_conocimiento;
    }

    public DependenciaAdministrativa getDep_administrativa() {
        return dep_administrativa;
    }

    public void setDep_administrativa(DependenciaAdministrativa dep_administrativa) {
        this.dep_administrativa = dep_administrativa;
    }

    public GrupoTrabajo getGrp_trab() {
        return grp_trab;
    }

    public void setGrp_trab(GrupoTrabajo grp_trab) {
        this.grp_trab = grp_trab;
    }

    public String getNomb_ent() {
        return nomb_ent;
    }

    public void setNomb_ent(String nomb_ent) {
        this.nomb_ent = nomb_ent;
    }

    public List<Actividad> getActividades() {
        return actividades;
    }

    public void setActividades(List<Actividad> actividades) {
        this.actividades = actividades;
    }

        @Override
    public long getId() {
        return id_ent_acad;
    }

    @Override
    public String getNombre() {
        return nomb_ent;
    }

}
